package com.priox.sigar.client.dto;

import com.priox.sigar.enums.TipoCuenta;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * User: Matrix
 * Date: 10/02/13
 */
public class OperacionCuentaDTO {

    private Long id;
    private Long checkPointId;
    private Long usuarioId;

    @NotNull(message = "el numero de documento es obligatorio")
    private String numeroDocumento;
    private String numeroDocumentoCompra;
    private String rangoLabel;
    private String referencia;
    private String cPag;
    private String codigoClas;
    private String codigoLl;
    private String codigoVp;
    private String codigoIr;
    private String codigoBp;
    private String codigoMoneda;
    private String yearBase;
    private Date fechaContable;
    private Date fechaContableOriginal;
    private Date fechaReciente;
    private Integer diferenciaDias;
    private Date fechaDocumento;
    private Date fechaBase;
    private Date fechaVencimientoNeto;
    private BigDecimal montoMonedaLocal;
    private BigDecimal montoMonedaDolares;
    private BigDecimal montoImporteValorado;
    private BigDecimal montoTotal;
    private String codigo_ce;
    private String posicion;


    List<OperacionCuentaDTO> detalle= new ArrayList<OperacionCuentaDTO>();

    private String texto;
    @NotBlank(message = "el usuario es obligatorio")
    private String usuario;
    private String usuarioTransaccional;
    private String docComp;
    private String anuladoCon;

    @NotNull
    @NotBlank(message = "la sociedad es obligatorio")
    private String sociedadId;

    private String sociedadNombre;

    private String grupoEmpresarialNombre;

    @NotNull
    @NotBlank(message = "la cuenta es obligatorio")
    private String cuentaContableId;

    private String cuentaContableDescripcion;

    private Long agrupacionId;
    private String agrupacionCodigo;
    private String agrupacionNombre;


    @NotNull
    @NotBlank (message = "el acreedor es obligatorio")
    private String acreedorId;

    private String acreedorDocumento;
    private TipoCuenta tipoCuenta;
    private Date fechaCorte;
    private String valorMayor;



    private String acreedorRazonSocial;

    public String getCodigo_ce() {
        return codigo_ce;
    }

    public void setCodigo_ce(String codigo_ce) {
        this.codigo_ce = codigo_ce;
    }

    public String getValorMayor() {
        return valorMayor;
    }

    public void setValorMayor(String valorMayor) {
        this.valorMayor = valorMayor;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNumeroDocumento() {
        return numeroDocumento;
    }

    public void setNumeroDocumento(String numeroDocumento) {
        this.numeroDocumento = numeroDocumento;
    }

    public String getReferencia() {
        return referencia;
    }

    public void setReferencia(String referencia) {
        this.referencia = referencia;
    }

    public String getcPag() {
        return cPag;
    }

    public void setcPag(String cPag) {
        this.cPag = cPag;
    }

    public String getCodigoClas() {
        return codigoClas;
    }

    public void setCodigoClas(String codigoClas) {
        this.codigoClas = codigoClas;
    }

    public String getCodigoLl() {
        return codigoLl;
    }

    public void setCodigoLl(String codigoLl) {
        this.codigoLl = codigoLl;
    }

    public String getCodigoVp() {
        return codigoVp;
    }

    public void setCodigoVp(String codigoVp) {
        this.codigoVp = codigoVp;
    }

    public String getCodigoIr() {
        return codigoIr;
    }

    public void setCodigoIr(String codigoIr) {
        this.codigoIr = codigoIr;
    }

    public String getCodigoBp() {
        return codigoBp;
    }

    public void setCodigoBp(String codigoBp) {
        this.codigoBp = codigoBp;
    }

    public String getCodigoMoneda() {
        return codigoMoneda;
    }

    public void setCodigoMoneda(String codigoMoneda) {
        this.codigoMoneda = codigoMoneda;
    }

    public Date getFechaContable() {
        return fechaContable;
    }

    public void setFechaContable(Date fechaContable) {
        this.fechaContable = fechaContable;
    }

    public Date getFechaDocumento() {
        return fechaDocumento;
    }

    public void setFechaDocumento(Date fechaDocumento) {
        this.fechaDocumento = fechaDocumento;
    }

    public Date getFechaBase() {
        return fechaBase;
    }

    public void setFechaBase(Date fechaBase) {
        this.fechaBase = fechaBase;
    }

    public Date getFechaVencimientoNeto() {
        return fechaVencimientoNeto;
    }

    public void setFechaVencimientoNeto(Date fechaVencimientoNeto) {
        this.fechaVencimientoNeto = fechaVencimientoNeto;
    }

    public BigDecimal getMontoMonedaLocal() {
        return montoMonedaLocal;
    }

    public void setMontoMonedaLocal(BigDecimal montoMonedaLocal) {
        this.montoMonedaLocal = montoMonedaLocal;
    }

    public BigDecimal getMontoMonedaDolares() {
        return montoMonedaDolares;
    }

    public void setMontoMonedaDolares(BigDecimal montoMonedaDolares) {
        this.montoMonedaDolares = montoMonedaDolares;
    }

    public String getTexto() {
        return texto;
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getDocComp() {
        return docComp;
    }

    public void setDocComp(String docComp) {
        this.docComp = docComp;
    }

    public String getAnuladoCon() {
        return anuladoCon;
    }

    public void setAnuladoCon(String anuladoCon) {
        this.anuladoCon = anuladoCon;
    }



    public String getCuentaContableDescripcion() {
        return cuentaContableDescripcion;
    }

    public void setCuentaContableDescripcion(String cuentaContableDescripcion) {
        this.cuentaContableDescripcion = cuentaContableDescripcion;
    }


    public String getAgrupacionCodigo() {
        return agrupacionCodigo;
    }

    public void setAgrupacionCodigo(String agrupacionCodigo) {
        this.agrupacionCodigo = agrupacionCodigo;
    }

    public String getAgrupacionNombre() {
        return agrupacionNombre;
    }

    public void setAgrupacionNombre(String agrupacionNombre) {
        this.agrupacionNombre = agrupacionNombre;
    }



    public String getAcreedorDocumento() {
        return acreedorDocumento;
    }

    public void setAcreedorDocumento(String acreedorDocumento) {
        this.acreedorDocumento = acreedorDocumento;
    }

    public String getAcreedorRazonSocial() {
        return acreedorRazonSocial;
    }

    public void setAcreedorRazonSocial(String acreedorRazonSocial) {
        this.acreedorRazonSocial = acreedorRazonSocial;
    }


    public Long getAgrupacionId() {
        return agrupacionId;
    }

    public void setAgrupacionId(Long agrupacionId) {
        this.agrupacionId = agrupacionId;
    }

    public Long getCheckPointId() {
        return checkPointId;
    }

    public void setCheckPointId(Long checkPointId) {
        this.checkPointId = checkPointId;
    }

    public String getYearBase() {
        return yearBase;
    }

    public void setYearBase(String yearBase) {
        this.yearBase = yearBase;
    }

    public String getCuentaContableId() {
        return cuentaContableId;
    }

    public void setCuentaContableId(String cuentaContableId) {
        this.cuentaContableId = cuentaContableId;
    }

    public String getSociedadId() {
        return sociedadId;
    }

    public void setSociedadId(String sociedadId) {
        this.sociedadId = sociedadId;
    }

    public String getSociedadNombre() {
        return sociedadNombre;
    }

    public void setSociedadNombre(String sociedadNombre) {
        this.sociedadNombre = sociedadNombre;
    }

    public Long getUsuarioId() {
        return usuarioId;
    }

    public void setUsuarioId(Long usuarioId) {
        this.usuarioId = usuarioId;
    }

    public String getNumeroDocumentoCompra() {
        return numeroDocumentoCompra;
    }

    public void setNumeroDocumentoCompra(String numeroDocumentoCompra) {
        this.numeroDocumentoCompra = numeroDocumentoCompra;
    }

    public String getAcreedorId() {
        return acreedorId;
    }

    public void setAcreedorId(String acreedorId) {
        this.acreedorId = acreedorId;
    }

    public TipoCuenta getTipoCuenta() {
        return tipoCuenta;
    }

    public void setTipoCuenta(TipoCuenta tipoCuenta) {
        this.tipoCuenta = tipoCuenta;
    }

    public Integer getDiferenciaDias() {
        return diferenciaDias;
    }

    public void setDiferenciaDias(Integer diferenciaDias) {
        this.diferenciaDias = diferenciaDias;
    }

    public Date getFechaCorte() {
        return fechaCorte;
    }

    public void setFechaCorte(Date fechaCorte) {
        this.fechaCorte = fechaCorte;
    }

    public BigDecimal getMontoImporteValorado() {
        return montoImporteValorado;
    }

    public void setMontoImporteValorado(BigDecimal montoImporteValorado) {
        this.montoImporteValorado = montoImporteValorado;
    }

    public String getGrupoEmpresarialNombre() {
        return grupoEmpresarialNombre;
    }

    public void setGrupoEmpresarialNombre(String grupoEmpresarialNombre) {
        this.grupoEmpresarialNombre = grupoEmpresarialNombre;
    }

    @Override
    public String toString() {
        return "OperacionCuentaDTO{" +
                "id=" + id +
                ", checkPointId=" + checkPointId +
                ", usuarioId=" + usuarioId +
                ", numeroDocumento='" + numeroDocumento + '\'' +
                ", numeroDocumentoCompra='" + numeroDocumentoCompra + '\'' +
                ", referencia='" + referencia + '\'' +
                ", cPag='" + cPag + '\'' +
                ", codigoClas='" + codigoClas + '\'' +
                ", codigoLl='" + codigoLl + '\'' +
                ", codigoVp='" + codigoVp + '\'' +
                ", codigoIr='" + codigoIr + '\'' +
                ", codigoBp='" + codigoBp + '\'' +
                ", codigoMoneda='" + codigoMoneda + '\'' +
                ", yearBase='" + yearBase + '\'' +
                ", fechaContable=" + fechaContable +
                ", diferenciaDias=" + diferenciaDias +
                ", fechaDocumento=" + fechaDocumento +
                ", fechaBase=" + fechaBase +
                ", fechaVencimientoNeto=" + fechaVencimientoNeto +
                ", montoMonedaLocal=" + montoMonedaLocal +
                ", montoMonedaDolares=" + montoMonedaDolares +
                ", montoImporteValorado=" + montoImporteValorado +
                ", codigo_ce='" + codigo_ce + '\'' +
                ", texto='" + texto + '\'' +
                ", usuario='" + usuario + '\'' +
                ", docComp='" + docComp + '\'' +
                ", anuladoCon='" + anuladoCon + '\'' +
                ", sociedadId='" + sociedadId + '\'' +
                ", sociedadNombre='" + sociedadNombre + '\'' +
                ", grupoEmpresarialNombre='" + grupoEmpresarialNombre + '\'' +
                ", cuentaContableId='" + cuentaContableId + '\'' +
                ", cuentaContableDescripcion='" + cuentaContableDescripcion + '\'' +
                ", agrupacionId=" + agrupacionId +
                ", agrupacionCodigo='" + agrupacionCodigo + '\'' +
                ", agrupacionNombre='" + agrupacionNombre + '\'' +
                ", acreedorId='" + acreedorId + '\'' +
                ", acreedorDocumento='" + acreedorDocumento + '\'' +
                ", tipoCuenta=" + tipoCuenta +
                ", fechaCorte=" + fechaCorte +
                ", valorMayor='" + valorMayor + '\'' +
                ", acreedorRazonSocial='" + acreedorRazonSocial + '\'' +
                '}';
    }

    public Date getFechaContableOriginal() {
        return fechaContableOriginal;
    }

    public void setFechaContableOriginal(Date fechaContableOriginal) {
        this.fechaContableOriginal = fechaContableOriginal;
    }

    public String getPosicion() {
        return posicion;
    }

    public void setPosicion(String posicion) {
        this.posicion = posicion;
    }

    public String getUsuarioTransaccional() {
        return usuarioTransaccional;
    }

    public void setUsuarioTransaccional(String usuarioTransaccional) {
        this.usuarioTransaccional = usuarioTransaccional;
    }

    public String getRangoLabel() {
        return rangoLabel;
    }

    public void setRangoLabel(String rangoLabel) {
        this.rangoLabel = rangoLabel;
    }

    public BigDecimal getMontoTotal() {
        return montoTotal;
    }

    public void setMontoTotal(BigDecimal montoTotal) {
        this.montoTotal = montoTotal;
    }

    public List<OperacionCuentaDTO> getDetalle() {
        return detalle;
    }

    public void setDetalle(List<OperacionCuentaDTO> detalle) {
        this.detalle = detalle;
    }

    public Date getFechaReciente() {
        return fechaReciente;
    }

    public void setFechaReciente(Date fechaReciente) {
        this.fechaReciente = fechaReciente;
    }
}
